Client (客戶端)
基本功能
網路請求
- 以系統原生 API 自行建立
- 使用第三方庫套件
- 例如
- Alamofire:功能強大的第三方庫,支持進階功能
錯誤處理
- 處理 HTTP 狀態碼
- 2xx:成功類型
- 200 OK
- 201 Created (成功建立)
- 204 No Content (例如刪除操作)
- 3xx:重定向類型
- 301 Moved Permanently (資源永久移動)
- 302 Found (資源臨時移動到新位置)
- 304 Not Modified (資源未變更,改用本地快取)
- 4xx:客戶端錯誤 (需刷新 or 重新登入)
- 400 Bad Request (參數格式錯誤)
- 401 Unauthorized (身份驗證失敗)
- 403 Forbidden (無訪問權限)
- 404 Not Found (資源不存在)
- 408 Request Timeout (請求超時)
- 429 Too Many Requests (請求頻率過高)
- 5xx:伺服器錯誤 (提示用戶稍後再試)
- 500 Internal Server Error (未預期的錯誤)
- 502 Bad Gateway (無效回應)
- 503 Service Unavailable (過載 or 維護中)
- 504 Gateway Timeout (超時)
- 連線異常
- 伺服器無回應 (不能永遠等下去,要增加 timeout 判斷)
- timeout (時間到了未回應)
- 數據異常
- 檢查數據類型是否符合預期
- 處理空值、缺少字段的情況
- 添加默認值
數據格式處理
- JSON 解析
- Codable 協議:使用
Encodable 和 Decodable 自動映射
- JSONSerialization:手動解析,適合不固定結構的 JSON
- XML 解析
安全性
- URL 必須是
HTTPS 數據保護傳輸
- 驗證與授權
- 確保正確實現身份驗證 (OAuth、JWT 等)
- 設置 Token 過期處理邏輯
- 資料儲存
- API 金鑰、Token、密碼等,敏感資訊要用
Keychain 儲存
- 避免將敏感資訊寫在程式中
版本控制
- Web API 最初版本就要提供版本號
- 客戶端需配合 Web API 的版本號做版本更新
後續優化
效能優化
- 使用快取 (Cache) 減少網路請求
- 根據實際狀況調整 Cache 策略
- API 優化
- timeout 時間能根據網路狀況與地區調整
用戶體驗
- 等待時顯示加載指示器
- 減少錯誤警告
- 連線失敗時自動重新嘗試
- 使用 Exponential Backoff (指數退避算法) 避免伺服器過載
長久維護
- 程式碼的設計與維護需要長期考量
- 初期的投入會決定未來的穩定性與可擴展性
程式碼優化
- 將 API 請求封裝到單獨的 Service 層,例如
APIService
- 使用協議 (protocol) 為 APIService 定義統一接口
與後端協作
- 確保 API 文件完整清晰
- 定義請求參數和回應格式
- 定義邏輯邊界